﻿using System;
using System.Collections.Generic;
using Neturion.Dados;

namespace Neturion.IRepositorios
{
    public interface IRepositorioFornecedor : IRepositorio<Fornecedor, int>
    {
        IList<Fornecedor> ObterTodos(int inicio, int quantidade, int quantidadeMinima, string nomeRazaoSocial,
                                     string apelidoFantasia, string nomeReduzido, string cpfCnpj, Midia midia,
                                     EnumTipoPessoa enumTipoPessoa,
                                     RamoAtividade ramoAtividade,
                                     Cnae cnae,
                                     DateTime? dataNascimentoAberturaDe, DateTime? dataNascimentoAberturaAte,
                                     DateTime? cadastroDe, DateTime? cadastroAte,
                                     DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte,
                                     DateTime? fimVigenciaDe, DateTime? fimVigenciaAte);
        Fornecedor ObterPorCodigo(string codigo);
        Fornecedor ObterPorCpfCnpj(string cpfCnpj);
        Fornecedor ObterPorPessoa(Pessoa pessoa);
        IList<Fornecedor> ObterPorNome(int inicio, int quantidade, int quantidadeMinima, string nome); 
        IList<Fornecedor> ObterPorRamoAtividade(RamoAtividade ramoAtividade);
        IList<Fornecedor> ObterPorCnae(Cnae cnae);
        int ObterUltimoIdCodigoInteiro();
    }
}